// ## jm4bbx
#include "ConsoleWriterBox.h"
#include "BinaryOperationResultIndexStreamWritterBox.h"
#include "PlainResultStreamWritterBox.h"
#include "../../runtime/AutomaticBoxCreatorRegistration.h"

namespace jm4bbx {
	typedef ConsoleWriterBox<BinaryOperationResultIndexStreamWritterBox> ConsoleWriterBoxBinIndex;
	typedef ConsoleWriterBox<PlainResultStreamWritterBox<StringKeyRecord>> ConsoleWriterBoxStrPlain;
	typedef ConsoleWriterBox<PlainResultStreamWritterBox<IntegerKeyRecord>> ConsoleWriterBoxIntPlain;
	REGISTER_BOX_TO_RUNTIME_BASE(BIN_INDEX_OUTPUT, ConsoleWriterBoxBinIndex)
	REGISTER_BOX_TO_RUNTIME_BASE(STRING_OUTPUT, ConsoleWriterBoxStrPlain)
	REGISTER_BOX_TO_RUNTIME_BASE(INTEGER_OUTPUT, ConsoleWriterBoxIntPlain)

	//ConsoleWriterBox::ConsoleOutputStream ConsoleWriterBox::cout_;

	//ConsoleWriterBox::ConsoleOutputStream& 
	//	ConsoleWriterBox::ConsoleOutputStream::operator<<(const std::string& str) 

} // namespace jm4bbx
